package com.wgy.day41JDBC.练习;

import com.wgy.day41JDBC.抽取JDBC工具类.JDBCUtils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

/**
 * Created by pc on 2020/12/23 23:54
 * Description: LearningJava
 */
/*
练习:1.键盘录入用户名和密码
    2.判断用户是否成功登录mysql数据库
实现步骤:
 1.创建数据库表 user表
    CREATE TABLE USER(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(32),
    PASSWORD VARCHAR(32)
    );

   INSERT INTO USER VALUES(NULL,'张三','123');
   INSERT INTO USER VALUES(NULL,'李四','abc');

 2.创建一个类里面完成登录的逻辑

*/

public class Demo10JDBC {
    public static void main(String[] args) {
        //1.键盘输入,接收用户名和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的用户名!");
        String name = sc.nextLine();
        System.out.println("请输入您的密码!");
        String password = sc.nextLine();
        //2.调用登录的方法,
        boolean b  = new Demo10JDBC().login(name, password);
        //3.判断结果
        if (b) {
            System.out.println("登录成功!");
        } else {
            System.out.println("用户名或密码错误!");
        }
    }


    //定义一个登录的方法
    public static boolean login(String username, String password) {
        if(username==null || password==null){
            return false;
        }
        // 连接数据库.判断是否登录成功
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;

        try {//1.获取连接
            conn = JDBCUtils.getConnection();
            //2.定义sql
            String sql = "select * from user where username='"+username+"'and password='"+password+"' ";
            //3.获取执行Sql的对象
            stmt = conn.createStatement();
            //4.执行查询语句
            rs = stmt.executeQuery(sql);
            //5.判断,如果下一行存在数据 则返回true,不存在数据 则返回false
            return rs.next();

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally{
            //6.释放资源
            JDBCUtils.close(rs,stmt,conn);
        }
        return false;
    }

}